--- id: TASK-012 title: 'TUI: Per-source error badge in panel title' status: To Do assignee: [] created_date: '2026-06-12 04:21' labels: - tui - enhancement dependencies: [] priority: medium ordinal: 12000 --- ## Description When a source has `snapshot.ok == false` or is missing entirely, panels currently just show "No data." with no indication of why. Distinguish three states visually: 1. **Not configured** — source disabled or `configured: false` → dim "—" or italic "not configured" 2. **Fetch error** — source enabled, snapshot exists, `ok: false` → `⚠` in border title + error message body 3. **No snapshot yet** — source enabled but no snapshot row → "waiting for first refresh…" Implementation: - In `payload()`, return a richer sentinel or pass state flags through - Update each `DashPanel`'s border title with `⚠` prefix when `ok: false` - Show the `snapshot.error` field in the panel body when available ## Acceptance Criteria - [ ] #1 Errored sources show ⚠ in panel border - [ ] #2 Error message from snapshot is displayed in panel body - [ ] #3 Not-configured sources are visually distinct from errored sources - [ ] #4 Healthy panels are unchanged